package com.tuo51.evaluate.service;

import com.tuo51.core.domain.org.Organization;
import com.tuo51.core.domain.staffs.Staff;
import com.tuo51.evaluate.domain.childrens.Children;
import com.tuo51.evaluate.domain.childrens.ChildrenExtendInfo;
import com.tuo51.evaluate.vo.children.ChildrenPO;
import com.tuo51.evaluate.vo.children.ChildrenVO;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * *******************************
 * Created by Ron.
 * form com.tuo51
 * on 2017/7/13
 * *******************************
 */
public interface ChildrenService {

    Children add(ChildrenVO childrenVO);

    Children add(String staffId,
                 String childAvatarUrl,
                 String childrenName,
                 String nickName,
                 Integer gender,
                 String birthday,
                 String weight, String height, String parentPhone, String guardianName, String guardianRelation);

    Children edit(Children children, String name, String nickName, String avatar, String guardianPhone, String guardianName, String guardianRelation, String birthday, Integer gender, String weight, String height, String header, String address, String remark);

    Children edit(Children children, ChildrenVO childrenVO);

    Children createOrEdit(Staff staff, ChildrenPO po, Organization org );

    Children getById(String id);

    Children getById(String id, String staffId);

    Map<String, Object> getAllWithSourceByParent(Staff staff);

    List<Children> getAllByParent(Staff parent);

    ChildrenExtendInfo getExtInfoByChildrenId(String childrenId);

    Children setDefaultChildren(Staff parent, String childrenId);
    Children defaultChildrenForParent(Staff parent, boolean withException);
    Children defaultChildrenForParent(Staff parent);

    boolean deleteChildrenForStaff(String childrenId, String staffId);

    boolean transferChildren(Staff sourceStaff, Staff targetStaff);

    Integer countChildrenByStaffIds(List<String> ids, Date date);
}
